package com.cms.util;

import java.text.SimpleDateFormat;
import java.util.Date;

import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;

/**
 * json-lib 日期处理类
 * @author Administrator
 *
 */
public class DateJsonValueProcessor implements JsonValueProcessor{

private String format;  
	
    public DateJsonValueProcessor(String format){  
        this.format = format;  
    }  
    /**
	 * 对单个日期字段的处理，这个字段是一个date[]或Timestamp[]类型的字段或集合，自动调用下面的方法进行处理转换
	 */
	public Object processArrayValue(Object value, JsonConfig jsonConfig) {
		// TODO Auto-generated method stub
		String[] obj = {};
		if (value instanceof Date[]) {
		SimpleDateFormat sf = new SimpleDateFormat(format);
		Date[] dates = (Date[]) value;
		obj = new String[dates.length];
		for (int i = 0; i < dates.length; i++) {
		obj[i] = sf.format(dates[i]);
		}
		}
		return obj;
	
		
	}
	/**
	 * 对单个日期字段的处理，这个字段是一个date或Timestamp类型的字段或集合，自动调用下面的方法进行处理转换
	 * Object value这个是转换时处理的字段
	 */
	public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) {
		if(value == null)  
        {  
            return "";  
        } 
		System.out.println("带日期类型的javabean调研了该方法处理日期类型字段");
        if(value instanceof java.sql.Timestamp)  
        {  
            String str = new SimpleDateFormat(format).format((java.sql.Timestamp)value);  
            return str;  
        }  
        if (value instanceof java.util.Date)  
        {  
            String str = new SimpleDateFormat(format).format((java.util.Date) value);  
            return str;  
        }  
          
        return value.toString(); 
	}

	

}

